-- set these properties outside of the event. That way they will only be set
-- once each time the app is run, not once for each event.
property crlf : (ASCII character 13) & (ASCII character 10)
-- This is a standard header for HTML files.
property http_10_header : "HTTP/1.0 200 OK" & crlf & "Server: MacHTTP" & crlf & Â
"MIME-Version: 1.0" & crlf & "Content-type: text/html" & crlf & crlf
-- Idletime is how long you want it to remain open to
-- wait for another event. Idletime is in seconds.
-- Datestamp will contain the current date. Initialize it here.
property idletime : 300 -- set to 5 minutes
property datestamp : 0
-- this bit of code outside the sdoc event is executed at launch-time
-- it is neccesary because an idle event can happen between
-- launch and the receipt of an sdoc event (and in fact often does)
set datestamp to current date
-- This is the loop for AppleEvents received by the application.
-- When you check the syntax, AppleScript will ask you to locate
-- MacHTTP and will set the correct name at that time.
on Çevent WWW½sdocÈ path_args Â
given Çclass kforÈ:http_search_args, Çclass postÈ:post_args, Çclass methÈ:method, Â
Çclass addrÈ:client_address, Çclass userÈ:username, Çclass passÈ:password, Çclass frmuÈ:from_user, Â
Çclass svnmÈ:server_name, Çclass svptÈ:server_port, Çclass scnmÈ:script_name, Çclass ctypÈ:content_type
-- Variables available for use:
-- http_search_args - stuff in the URL after a ?
-- post_args - stuff in the URL after a $
-- method - GET, POST, etc. Used to tell if post_args are valid
-- client_address - IP address or domain name of remote client's host
-- from_user - non-standard. e-mail address of remote user
-- username - authenticated user name
-- password - authenticated password
-- server_name - name or IP address of this server
-- server_port - TCP/IP port number being used by this server
-- script_name - URL name of this script
-- content_type - MIME content type of post_args
-- save the current date and time to check later for quitting
set datestamp to current date
-- Using the "try" clause causes the "on error" routine to be run
-- if an error occurs instead of crashing.
-- If the error occurs outside the "try"/"end try" space then
-- the "on error" routine is NOT run.
try
-- the following line generates an error on purpose so you
-- can see what the results look like. Remove it before using
-- this code to build your own CGI or things won't work so well.
error "Unable to process field \"username\" of arg \"post_args\"" Â
& return & "
Field not recognized by script." Â
number 100
-- Return each parameter so you can see what the unprocessed
-- information looks like.
set return_page to http_10_header Â
& "